Next: Windows HOME, Previous: Windows Files, Up: Microsoft Windows [Contents][Index]
ls on
MS-WindowsDired normally uses the external program ls to
produce the directory listing displayed in Dired buffers (see
Dired). However, MS-Windows and
MS-DOS systems don’t come with such a program, although
several ports of GNU ls are
available. Therefore, Emacs on those systems emulates
ls in Lisp, by using the ls-lisp.el
package. While ls-lisp.el provides a reasonably full
emulation of ls, there are some options and features
peculiar to that emulation; they are described in this
section.
The ls emulation supports many of the
ls switches, but it doesn’t support all of
them. Here’s the list of the switches it does support:
-A, -a, -B,
-C, -c, -G,
-g, -h, -i,
-n, -R, -r,
-S, -s, -t,
-U, -u, and -X. The
-F switch is partially supported (it appends the
character that classifies the file, but does not prevent symlink
following).
On MS-Windows and MS-DOS, ls-lisp.el is preloaded
when Emacs is built, so the Lisp emulation of ls is
always used on those platforms. If you have a ported
ls, setting
ls-lisp-use-insert-directory-program to a
non-nil value will revert to using an external
program named by the variable
insert-directory-program.
By default, ls-lisp.el uses a case-sensitive sort
order for the directory listing it produces; this is so the
listing looks the same as on other platforms. If you wish that
the files be sorted in case-insensitive order, set the variable
ls-lisp-ignore-case to a non-nil
value.
By default, files and subdirectories are sorted together, to
emulate the behavior of ls. However, native
MS-Windows/MS-DOS file managers list the directories before the
files; if you want that behavior, customize the option
ls-lisp-dirs-first to a non-nil
value.
The variable ls-lisp-verbosity controls the file
attributes that ls-lisp.el displays. The value
should be a list that contains one or more of the symbols
links, uid, and gid.
links means display the count of different file
names that are associated with (a.k.a. links to) the
file’s data; this is only useful on NTFS volumes.
uid means display the numerical identifier of the
user who owns the file. gid means display the
numerical identifier of the file owner’s group. The default
value is (links uid gid) i.e., all the 3 optional
attributes are displayed.
The variable ls-lisp-emulation controls the
flavor of the ls emulation by setting the defaults
for the 3 options described above:
ls-lisp-ignore-case,
ls-lisp-dirs-first, and
ls-lisp-verbosity. The value of this option can be
one of the following symbols:
GNUnilEmulate GNU systems; this is the default.
This sets ls-lisp-ignore-case and
ls-lisp-dirs-first to nil, and
ls-lisp-verbosity to (links uid
gid).
UNIXEmulate Unix systems. Like GNU, but sets
ls-lisp-verbosity to (links
uid).
MacOSEmulate MacOS. Sets ls-lisp-ignore-case to
t, and ls-lisp-dirs-first and
ls-lisp-verbosity to nil.
MS-WindowsEmulate MS-Windows. Sets ls-lisp-ignore-case
and ls-lisp-dirs-first to t, and
ls-lisp-verbosity to (links) on
Windows NT/2K/XP/2K3 and to nil on Windows 9X.
Note that the default emulation is not
MS-Windows, even on Windows, since many users of
Emacs on those platforms prefer the GNU
defaults.
Any other value of ls-lisp-emulation means the
same as GNU. Customizing this option calls the
function ls-lisp-set-options to update the 3
dependent options as needed. If you change the value of this
variable without using customize after ls-lisp.el is
loaded (note that it is preloaded on MS-Windows and MS-DOS), you
can call that function manually for the same result.
The variable ls-lisp-support-shell-wildcards
controls how file-name patterns are supported: if it is
non-nil (the default), they are treated as
shell-style wildcards; otherwise they are treated as Emacs
regular expressions.
The variable ls-lisp-format-time-list defines how
to format the date and time of files. The value of this
variable is ignored, unless Emacs cannot determine the
current locale. (However, if the value of
ls-lisp-use-localized-time-format is
non-nil, Emacs obeys
ls-lisp-format-time-list even if the current locale
is available; see below.)
The value of ls-lisp-format-time-list is a list
of 2 strings. The first string is used if the file was modified
within the current year, while the second string is used for
older files. In each of these two strings you can use
‘%’-sequences to substitute parts of the
time. For example:
("%b %e %H:%M" "%b %e %Y")
Note that the strings substituted for these ‘%’-sequences depend on the current locale. See Time Parsing in The Emacs Lisp Reference Manual, for more about format time specs.
Normally, Emacs formats the file time stamps in either
traditional or ISO-style time format. However, if the value of
the variable ls-lisp-use-localized-time-format is
non-nil, Emacs formats file time stamps according to
what ls-lisp-format-time-list specifies. The
‘%’-sequences in
ls-lisp-format-time-list produce locale-dependent
month and day names, which might cause misalignment of columns in
Dired display.
Next: Windows HOME, Previous: Windows Files, Up: Microsoft Windows [Contents][Index]